home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
AdobeExamples
/
NX_Dial
/
DialView.h
< prev
next >
Wrap
Text File
|
1995-06-12
|
3KB
|
138 lines
/*
* (a) (C) 1990 by Adobe Systems Incorporated. All rights reserved.
*
* (b) If this Sample Code is distributed as part of the Display PostScript
* System Software Development Kit from Adobe Systems Incorporated,
* then this copy is designated as Development Software and its use is
* subject to the terms of the License Agreement attached to such Kit.
*
* (c) If this Sample Code is distributed independently, then the following
* terms apply:
*
* (d) This file may be freely copied and redistributed as long as:
* 1) Parts (a), (d), (e) and (f) continue to be included in the file,
* 2) If the file has been modified in any way, a notice of such
* modification is conspicuously indicated.
*
* (e) PostScript, Display PostScript, and Adobe are registered trademarks of
* Adobe Systems Incorporated.
*
* (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
* CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
* AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
* ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
* OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
* WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
* WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
* DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
* OF THIRD PARTY RIGHTS.
*/
/*
* DialView.h
*
* This class, a subclass of view, contains the methods to draw an object in
* several ways: using wraps with the PostScript operator rotate, using wraps
* but calculating the trig for the lines, using user paths and trig and using user
* paths stored in the server.
*
* Times are available for comparison between methods.
*
*
* Version: 2.0
* Author: Ken Fromm
* History:
* 03-07-91 Added this comment.
* 05-10-91 Simplified the drawing from six to four methods
*/
#import <appkit/View.h>
#define RADIANS ((2 * 3.1415)/360)
#define CLRVIEW NX_LTGRAY
#define CLRCIRC NX_DKGRAY
#define WIDCIRCBRD 5.0
#define CLRCIRCBRD NX_BLACK
#define CIRCFF 5
#define WID1 0.5
#define CLR1 NX_LTGRAY
#define LEN1 (10.0/11.0)
#define DEG1 1.0
#define WID10 1.5
#define CLR10 NX_LTGRAY
#define LEN10 (6.0/7.0)
#define DEG10 10.0
#define WID45 2.5
#define CLR45 NX_BLACK
#define LEN45 (0.75)
#define DEG45 45.0
#define WID90 3.5
#define CLR90 NX_BLACK
#define LEN90 (0.7)
#define DEG90 90.0
#define MAX_PTS 1500
#define MAX_OPS 750
#define DRAWALL 0xff /* Draw with all methods */
/*
* The id's are for the buttons and text fields. The pts and ops variables are for
* the arrays to hold the user path points and operators.
*/
@interface DialView:View
{
id matrixDegreeTypes,
matrixDisplayTimes;
BOOL trace;
float maxdim;
float *pts;
char *ops;
NXPoint viewcenter;
union {
struct {
unsigned char wrapsrotate:1;
unsigned char wrapstrig:1;
unsigned char upathstrig:1;
unsigned char upathsserver:1;
unsigned char PADDING:4;
} flags;
unsigned char field;
} drawFlags;
}
+ newFrame:(NXRect *) frm;
- free;
- setMatrixDegreeTypes:anObject;
- setMatrixDisplayTimes:anObject;
- setupUpaths;
- trace:sender;
- eraseTimes:sender;
- drawViewOne:sender;
- drawViewAll:sender;
- drawWrapsRotate:(int) cell;
- drawWrapsTrig:(int) cell;
- drawUpathsTrig:(int) cell;
- drawUpathsServer:(int) cell;
- drawSelf:(NXRect *)r :(int) count;
@end